#ifndef DUNGEONMAP_HH
#define DUNGEONMAP_HH
/*
The DungeonMap class renders a dungeon map via displayMap, showing room types (shop $, treasure *, generic X), unexplored areas ?, and the player's position P. 
setPlayerPosition updates coordinates and marks as explored, while setRoomMap defines room layouts.
*/
/*
* DungeonMap类通过displayMap方法渲染地牢地图，展示以下元素：* - 房间类型：商店($)、宝藏(*)、普通房间(X)，* - 未探索区域(?)，* - 玩家当前位置(P)
* setPlayerPosition方法用于更新玩家坐标并标记为已探索区域，
* setRoomMap方法则定义地牢房间布局结构。
*/
#include <map>
#include <vector>
#include "Room.hh"

namespace DungeonRPG {

class DungeonMap {
private:
    int playerX = 0;
    int playerY = 0;
    std::map<std::pair<int, int>, bool> explored;
    std::map<std::pair<int, int>, Room*> roomMap;

public:
    DungeonMap();
    void setPlayerPosition(int x, int y);
    void displayMap(int px, int py) const;
    void setRoomMap(const std::map<std::pair<int, int>, Room*>& roomMap);
};

}

#endif
